<?php

namespace app\api\controller;

use think\Controller;
/**
 *  地区控制
 */
class Area extends Controller
{

    public function  get_city()
    {
        
        $ip = $this->get_client_ip();

        $key = '5191f666df421265f5b673281a97454c';
        $url = 'http://restapi.amap.com/v3/ip?ip=' . $ip . '&output=json&key=' . $key;
        $info = file_get_contents($url);
        if (!$info) {
            mylog('ip curl error ' . $url);
            puterror(['status' => 2, 'msg' => 'ip error']);
        }

        $jsonAddress = json_decode($info, true);

        if(!isset($jsonAddress['status']) || $jsonAddress['status'] != 1){
            mylog($info);
            puterror(['status' => 2, 'msg' => 'ip fail']);
        }

        if(!isset($jsonAddress['city']) || empty($jsonAddress['city'])){
            puterror(['status' => 0, 'msg' => '无法获取ip信息']);
        }

        $content = $jsonAddress['province'].$jsonAddress['city'];
        putsuccess($content);
    }

    public function get_client_ip($type = 0, $adv = false){

        $type = $type ? 1 : 0;
        static $ip = NULL;
        if ($ip !== NULL) return $ip[ $type ];
        if ($adv) {
            if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
                $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
                $pos = array_search('unknown', $arr);
                if (false !== $pos) unset($arr[ $pos ]);
                $ip = trim($arr[0]);
            } elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
                $ip = $_SERVER['HTTP_CLIENT_IP'];
            } elseif (isset($_SERVER['REMOTE_ADDR'])) {
                $ip = $_SERVER['REMOTE_ADDR'];
            }
        } elseif (isset($_SERVER['REMOTE_ADDR'])) {
            $ip = $_SERVER['REMOTE_ADDR'];
        }
        // IP地址合法验证
        $long = sprintf("%u", ip2long($ip));
        $ip = $long ? [$ip, $long] : ['0.0.0.0', 0];
        return $ip[ $type ];
    }
}

